1. Field of the Invention
The present invention relates, generally, to the field of digital content storage and playback and, more particularly, to the retrieval of stored or cached digital content from a network storage device for playback at a local client device.
2. Description of the Related Art
The time shifting of television content has significantly changed how and when people view television. Through time shifting, content is recorded to a particular storage medium for viewing at a later time. Time shifting was originally accomplished through the use of video cassette recorders (VCRs). A tuner in a VCR would receive a signal corresponding to particular television content over the public airwaves and record the constituent audio and visual signals of that program on magnetic tape. A user, through the VCR, could subsequently convert the recorded audio and video signals into a composite signal for display by a television connected to the VCR regardless of when the television content was originally transmitted and recorded.
In addition to time shifting, the VCR also allowed for a user to fast forward and rewind through recorded content (sometimes referred to as seeking or VCR functionality). For example, the user of a VCR could fast forward through commercials. Similarly, the user could rewind to particular portions of a movie that were of interest or had inadvertently been missed (e.g., the user was interrupted from watching a time shifted movie to answer a telephone call).
Notwithstanding the aforementioned benefits of the VCR, a number of drawbacks were associated with the time shifting of television content. For example, VCRs required the use of inconvenient magnetic tapes for recording television content. If a user wanted to fast forward or rewind through a particular piece of content or to a particular portion of content recorded on the tape, proper seeking typically required the user to: (1) stop playback of the cassette tape, (2) activate a fast forward or rewind function, (3) stop the particular seek function when the user arrived at the appropriate portion of the tape, and (4) reinitiate playback of the content from the newly arrived at portion of the cassette tape.
This process in and of itself was clumsy and inconvenient and presupposed the user knew exactly where to stop the cassette tape to arrive at the portion of the content for which playback was desired. In most cases, however, a user would simply activate the appropriate seek function while playback occurred. While seeking in such a fashion conveniently allowed the user to visually search through the recorded content, this behavior was not ideally suited to the magnetic tape and often resulted in damage to the tape and sometimes the VCR. In some instances, the combination of general wear and tear on the recording medium and improper seeking caused the content recorded on the magnetic tape to become wholly unwatchable.
With the advent of the Digital Video Recorder (DVR), however, users could now accomplish with digital computer memory what was previously accomplished through the use of magnetic video tape but without the aforementioned drawbacks. For example, through the use of data compression technologies such as those developed by the Motion Pictures Experts Group (MPEG, which also refers to the format developed by that group for files containing moving pictures), content like that broadcast on cable and free-television is recorded to digital storage media such as a disk drive or solid-state memory. Additionally, the user can play previously-recorded material at any time and perform a visual seek without worrying about damaging the recorded content.
Through the use of the DVR, the user can cache or record current incoming content transmissions while watching an earlier portion of the same, which was not possible with a VCR. With a VCR, the time shifted playback of content was only possible once recording of the content had ceased. But through the use of the DVR, a user can arrive home to view television content at 8:15 pm yet rewind and watch portions of that content from the memory of the DVR (e.g., the portion of the content that began at 8:00 pm). During the time that the user is watching the earlier cached or recorded portion (i.e., 8:00 pm to 8:15 pm) of the content from DVR memory, the current content transmission continues to be cached or recorded from 8:15 pm until the content transmission ends, this latter portion subsequently being available for user playback as well.
Notwithstanding this additional benefit of the DVR over the VCR, this particular type of time shifting is generally limited to caching or recording on the particular channel to which the DVR (or a television) is presently tuned. DVRs are generally unable to time shift across multiple channels while changing channels in real-time because doing so would require multiple tuners capable of storing to multiple storage devices or segments of memory simultaneously. Such an approach would be cost-prohibitive because there are a large number of channels available for the caching or recording of content (e.g., over-the-air free-TV broadcasts, satellite, cable, and so on).
Another problem with presently available DVRs is that the DVR only caches current content from the channel to which it (or an associated television) is currently tuned. Thus any time that the user changes the channel, the DVR's temporary memory is flushed and only the content that arrives on the new channel from that point forward (i.e., after the channel change) is cached by the DVR. In other words, if a DVR user chooses a new channel at 8:20 pm, only content from 8:20 onward is cached. While it is possible (subject to the presence of data in memory of the DVR that is digitally representative of the television content) to rewind back to the 8:20 start time of the cached content, it is impossible to rewind back to the actual start time of the content (in this example, 8:00 pm) because that portion of the content was not cached at the DVR prior to the 8:20 pm channel change.
A similar problem exists with regard to the semi-permanent recording of content by the DVR, which differs from temporary caching and is discussed further herein. For example, a user may configure their DVR to record a two-hour content selection beginning at 8:00 pm. If the user attempts to change the channel during that two-hour recording window (e.g., at 8:20 pm), the DVR will terminate the recording operation and change the channel, possibly following a warning to and receipt of confirmation from the user concerning termination of the recording. In this instance, the DVR will have an incomplete recording of content that spans only from 8:00 pm to 8:20 pm and an equally incomplete cache of content from the new channel as the DVR was not engaged in recording or caching content from that particular channel prior to the changing of the channel.